perm filename KIAUD.SAI[KI,ALS] blob
sn#095831 filedate 1974-04-05 generic text, type T, neo UTF8
00100 ENTRY HEAR;
00200 BEGIN
00300 DEFINE ⊂="COMMENT";
00400 ⊂ To initiate the ADC and FRECRD an utterance in file LISTEN.TMP;
00500 DEFINE CR="'15",LF="'12",CRLF="CR&LF";
00600
00650 REQUIRE "KIPLAY.REL[KI,ALS]" LOAD_MODULE;
00700 REQUIRE "FRECRD.REL[KI,ALS]" LOAD_MODULE;
00800 REQUIRE "FIXUPA.REL[X,ALS]" LIBRARY;
00900 REQUIRE "IO.REL[X,ALS]" LIBRARY;
01000 REQUIRE "SUIO.REL[X,ALS]" LIBRARY;
01100 REQUIRE "LIB.REL[NET,NJM]" LIBRARY;
01150 EXTERNAL FORTRAN PROCEDURE KIPLAY;
01200 EXTERNAL FORTRAN PROCEDURE FRECRD;
01300 EXTERNAL INTEGER CHAN3;
01400 INTEGER SEGNAM,PP;
01500 INTEGER ARRAY DUMMY[1:2];
01600
01700 INTERNAL PROCEDURE HEAR;
01800 BEGIN "KIHEAR"
01900 INTEGER BRCHR,EOF; BOOLEAN ER;
02000
02100 CLOSE(CHAN3); OPEN(CHAN3,"DSK",'10,1,1,0,0,EOF);
02200 LOOKUP(CHAN3,"LISTEN.TMP[KI,ALS]",ER);
02300 CLOSE(CHAN3); RENAME(CHAN3,"OLD.TMP",0,0); RELEASE(CHAN3);
02400 ⊂ Rename old LISTEN.TMP file for safety;
02500 outstr("Start talking after the first beep and stop on second"&CRLF);
02600 START_CODE MOVE 0,['725005000004]; '047000400110 ; END;
02700 ⊂ This sounds the beep for 1 second with immediate return, so that
02800 the ADC can be called before the speaker starts;
02900 OUTSTR("The beep should be sounding for 1 second now"&CRLF);
03000
03100 ⊂ Get segment name and detach;
03200 START_CODE '047000400037; MOVEM 0,SEGNAM; '047040400017; END;
03300
03400 FRECRD(DUMMY[1]);
03500
03600 START_CODE MOVE 0,SEGNAM; '047000400016; JFCL; END;
03700 ⊂ Reattach segment;
03800 START_CODE MOVE 0,['725005000004]; '047000400110 ; END;
03900
04000 END "KIHEAR";
04100
04400
04500 INTERNAL PROCEDURE SAY(STRING UTTER);
04600 BEGIN "SAY"
04800
04850 START_CODE MOVE 0,['325004000000]; '047000400110; END;
04900
05000 PP←CVASC(UTTER);
05100 START_CODE '047000400037; MOVEM 0,SEGNAM; '047040400017; END;
05200 ⊂ Get segment name and detach;
05300 KIPLAY(PP,DUMMY[1]);
05400 START_CODE MOVE 0,SEGNAM; '047000400016; JFCL; END;
05500 ⊂ Reattach segment so exit will be in order;
05600 END "SAY";
05700
05800 END;